package cn.pengpeng.day05.firstMR;

import java.io.IOException;

import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;


/**
 * 四个参数：
 * KEYIN 输入数据的key 行偏移量（行的起始位置）
 * VALUEIN 输入的value  每一行数据的类型
 * KEYOUT 输出的 key类型
 * VALUEOUT  输出的value类型
 * 
 * 序列化
 * java的序列化：存储全类名，每一个数据的类型都会存储     10G --->30g  效率不高
 * 
 * hadoop自己的序列化
 * Long     LongWritable
 * Integer	IntWritable
 * String   Text
 * Float	FloatWritable
 * Double	DoubleWritable
 * null		NullWritable
 * @author root
 *
 */
/**
 * map 阶段 每一行的数据都进行切分      输出数据
 * @author root
 *
 */
public class MapTask extends Mapper<LongWritable, Text, Text, IntWritable>{

	@Override
	protected void map(LongWritable key, Text value, Context context)
			throws IOException, InterruptedException {
		//value   每行的数据
		String[] split = value.toString().split(" ");
		for (String word : split) {
			context.write(new Text(word), new IntWritable(1));
		}
	}
	
}
